首次配方创建
本次深入讲解什么是 Recipe(配方),概述 Classification 与 Segmentation 的差异,以及创建 Recipe 的逐步指南。还包含 Imaging Setup 配置的详细演练、模板图像(Template Image)捕获与 Aligner 配置、ROI 的优化、用于 AI 训练的数据收集,以及图像增强(image augmentation)配置。
学习目标
通过本次深入学习,您将理解:
- 什么是 Recipe(配方)
- 分类(Classification)与分割(Segmentation)的区别,以及何时使用各自的方法
- 如何创建 Recipe(配方)
- 如何配置 Imaging Setup(成像设置)
- 如何捕获 Template Image(模板图像)并配置 Aligner(对齐器)
- ROI(Regions of Interest,感兴趣区域)是什么以及如何对 ROI 进行优化
- 用于 AI 训练的数据收集
- Recipe 的测试与验证
What is a Recipe?
- 一个配置好的一组指令,告知相机如何对特定部件或产品进行检测。
- 定义相机设置,包括曝光、对焦和照明参数,以实现一致的图像采集。
- 包含处理逻辑,例如 ROI 定义、Aligner、分类或分割类。
- 存储输入/输出配置,以便与自动化系统集成实现通过/失败或高级信号。
- 可以被保存并重复使用,以确保跨班次、生产线或工厂的检测一致性。
分类 vs. 分割
定义
- Classification:在 ROI 中识别对象类型
- Segmentation:定位并分析图像/ROI 中的区域
示例
| Image Classification | Image Segmentation | Image Classification | Image Segmentation |
|---|---|---|---|
| What is a sheep? | Which pixels belong to which object? | Is this pizza acceptable or defective? | Where is each pepperoni? |
![]() | ![]() | ![]() | ![]() |
关键对比
| 分类 | 分割 | |
|---|---|---|
| 速度 | 速度取决于 Imaging Setup(成像设置)和复杂度。通常在简单设置下高效且速度快 | 可以在优化时达到与分类同样快甚至更快,尤其是采用流线型模型时 |
| 准确性 | 适用于整体的通过/不通过或部件类型识别 | 在定位精确缺陷方面具有更高的准确性 |
| 复杂度 | 设置和维护简单;参数较少 | 复杂度较高——需要更多数据、标注和调优 |
| 数据需求 | 低——需要较少标注的图像 | 中等——需要大量具有像素级准确标注的图像 |
| 用例 | 部件存在性、方向、基本质量检查、部件已插入/未插入等 | 表面缺陷、细小特征检测、多缺陷检测、计数、测量等 |
创建并导出配方
使用每个配方旁的 Export Recipe 按钮来导出单个配方。
在屏幕顶部使用 Export 按钮一次导出多个配方。

在屏幕顶部使用 Import 按钮导入配方。

Remember: 每个配方一次仅支持一种检验类型,分割(segmentation)或分类(classification)中的一种。开始设置前,请选择正确的类型。
图像设置
图像旋转
- 含义: 将图像旋转(0° 或 180°)。
- 使用场景: 如果相机以一定角度安装,但希望在界面中显示为相反的方向。
如果需要将图像旋转 90°,请旋转相机。
增益
- 含义: 以数字方式人工增亮图像(类似相机中的 ISO)。
- 影响:
- 高增益 → 图像更亮,但会增加 噪声(颗粒感)。
- 低增益 → 图像更清晰,但需要良好的照明。
| 高增益 | 低增益 |
|---|---|
![]() | ![]() |
| 更亮且有噪声 | 更暗且噪声更少 |
仅在无法调整曝光或照明时才提高增益。
模板图像与对齐
跳过对齐器
- 含义: 在检查过程中关闭对齐步骤。
- 使用场景: 如果零件在图像中始终处于相同的位置和朝向。
模板区域
- 含义: 定义用于对齐的模板图像区域。
- Rectangle(矩形): 绘制一个矩形感兴趣区域。
- Circle(圆形): 绘制一个圆形感兴趣区域。
- Ignore Template Region(忽略模板区域): 在对齐时排除某些区域,以避免干扰模式或无关特征。
- 最佳用途: 帮助系统仅关注最具辨识度的部件特征,以实现准确对齐。
旋转范围

- 含义: 设置系统在将部件与模板匹配时可容忍的旋转角度(单位为度)。
- 示例: 设置为 ±20° 允许部件略微旋转但仍能被检测到。
- 何时调整: 如果部件在生产中易旋转,则增大该值;对于高度一致的取向,缩小该值。
灵敏度
- 含义: 控制系统在实时图像与模板之间查找匹配的细致程度。
- 影响:
- 高灵敏度 → 能检测到更微小的细节,适用于复杂部件。
- 低灵敏度 → 可减少误匹配,但可能错过细微特征。
置信度阈值
- 它是什么: 设置系统接受检测所需的最低置信度分数。
- 影响:
- 阈值越高 → 假阳性越少,但可能漏检边界情况。
- 阈值越低 → 检测更多,但误报风险增加。
从中等开始,并根据测试结果进行调整。
尺度不变性
- 它是什么: 允许系统检测略大于或略小于原模板图的部件。
- 启用时机: 如果部件尺寸可能因定位、距离变化或制造公差而略有变化。
实时预览图例

1. 一个可配置的 bounding box,用于在触发期间监控相机视场(FOV)的特定区域。
- 目的: 确保相机仅聚焦于相关区域,忽略不必要的背景区域。
- 最佳用法:
- 对于 moving objects,以确保部件始终完全位于检测区域。
- 通过减少分析的图像数据量来 优化处理速度。
2. 一个可视红点,显示图像中所有已定义的 ROIs (Region of Interest) 的中心点。
- 目的: 帮助您将搜索区域相对于部件或相机视图对齐与定位。
3. 绿线表示对象的边缘已被检测。
如果看到线条变为红色,请尝试增大 ROI 大小、调整 ROI,或提高灵敏度。

ROI(Region of Interest)定义与优化
检查类型
- 它是什么: 定义正在执行的 inspection type,并将相似的 ROI(Region of Interest)分组。
- 示例: 使用 “Holes” 来检查部件中孔的存在、尺寸或质量。
- 关键特性:
- Add Inspection Type(添加检查类型):为不同检查需求创建新类别。
- # of ROIs(ROI 数量):显示当前分配给该检查类型的 ROI 数量。
变换

- 它是什么: 调整所选 ROI 的位置和几何形状,以实现精确对齐与放置。
- 字段及其用途:
- Height/Width(高度/宽度):改变 ROI 的大小。
- X / Y:在水平(X)和垂直(Y)轴上移动 ROI 的位置。
- Angle(角度):围绕中心旋转 ROI。
- 最佳用法: 当您具有重复模式时(例如多个相同孔),可加速设置。
检查区域

- 它是: 在模板图像中定义的所有 ROI 的列表。
- 特性:
- 添加检查区域: 通过手动创建一个新的 ROI。
- 忽略区域: 在处理过程中排除特定区域。
- 编辑: 保存、删除或取消。
- 锁定图标: 表示被锁定的 ROI,在解锁前不能移动。
实时预览模式
- 它是: 在调整或添加 ROI 之后显示实时反馈。
- 使用场景: 在设置过程中非常适合对 ROI 位置和尺寸进行 微调。
测试按钮
- 它是: 基于旧图像运行回测以验证变更。
- 使用场景: 将当前结果与以前的设置进行比较,以评估准确性和一致性。
数据采集与 AI 训练
定义不同的检查类别,并根据其指定的检查类型对每个 ROI 进行标注(见下方示例)。

使用 Annotation Tools 对图像进行标注/注释。使用 Brush Class 下拉菜单选择要标注的类别。对于分割,当前每个配方的类别上限为 10 类。

高质量数据的重要性

- Garbage In, Garbage Out: AI 模型的表现取决于你提供的数据。质量差或不一致的数据会导致结果不准确。
- Diversity Matters: 收集能够代表所有真实世界变化的数据:不同班次、照明条件、部件位置和表面状况。
- Quality Over Quantity: 小而干净、标注良好的数据集通常比大型但嘈杂或不一致的数据集表现更好。
Annotation Basics:
- Classification: 将整张图像或 ROI 标注为特定类别(例如“Good”、“Damaged”)。
- Segmentation: 以像素级精度在感兴趣的特定区域进行涂抹、轮廓勾画或高亮(例如表面上的划痕位置)。
- Consistency: 在标注时使用一致的规则和定义,以避免训练过程中的混淆。

常见陷阱
- 数据不足: 样本数量太少将导致欠拟合,从而降低实际场景中的性能。
- 类别不平衡: 某一类别的过度代表(例如大量“良好”部件但缺陷部件较少)会使模型产生偏差。
- 标注不当: 标注错误、不一致或匆忙标注会导致显著的准确度下降。
- 忽略环境变化: 当照明、部件朝向或表面条件发生变化而未更新数据集时,会导致准确性漂移。
- 未进行数据验证: 在训练前跳过质量检查通常会导致时间浪费和返工。
数据增强
图像增强 会人工修改训练图像 以提高模型的鲁棒性。它们模拟现实世界的变化,如亮度变化、旋转或噪声,使模型在不同条件下也能良好工作。
颜色增强

亮度
- 是什么: 调整图像的明亮度或黑暗程度。
- 使用场景: 处理生产过程中的光照微小变化。
在稳定设置下使用 ±0.1;如果光照变化更大则增大该数值。
对比度
- 是什么: 改变明暗区域之间的对比度。
- 使用场景: 对具有纹理或表面差异的部件很有帮助,帮助模型适应视觉差异。
色相
- 是什么: 轻微偏移颜色色调。
- 使用场景: 当照明颜色(如 LED 色温)随时间可能发生偏移的设置时很有用。
饱和度
- 是什么: 调整颜色的饱和度。
- 使用场景: 有助于处理照明变化导致图像看起来黯淡或更鲜艳的情况。
几何增强

旋转范围
- 是什么: 在设定范围内对图像进行随机旋转(例如,±20°)。
- 使用场景: 部件可能以略微旋转的位置进入。
对于通常固定朝向的部件,避免过度旋转。
翻转
- 是什么: 将图像水平翻转、垂直翻转,或两者同时翻转。
- 使用场景: 对称部件或在搬运过程中方向可能翻转时很有用。
光照与色彩模拟

Planckian
- 是什么: 模拟颜色温度的变化(例如,暖光或冷光)。
- 使用场景: 处理具有不同光源的工作单元中的各种偏移。
高斯噪声
- 是什么: 向图像添加微小的噪声。
- 使用场景: 若生产环境存在微小的视觉噪声或相机传感器伪影,可提高鲁棒性。
运动模拟

运动模糊
- 是什么: 模拟拍摄过程中部件移动时的轻微模糊。
- 使用场景: 对于高速生产线,可能出现运动模糊的情况尤为关键。
概率(prob)
- 是什么: 设置在训练过程中应用每种增强的概率。
- 示例: 0.50 = 对任意给定训练图像应用该变化的概率为 50%。
通常,对大多数增强保持 0.5 的起始值,并根据真实世界的变异性进行调整。
训练参数(分割)
训练参数(也称为超参数)是控制 机器学习模型如何从数据中学习 的设置。
学习率
- 定义: 控制在训练过程中模型更新其内部权重的速度。
- 数值(0.003): 学习率越高,模型学习越快,但过高可能导致不稳定或精度下降。
- 滑块范围: 10^-4(非常慢)到 10^-1(非常快)。
通常,0.001–0.01 之间的数值对于分割任务是一个不错的起点。
ROI(Region of Interest)大小
- 定义: 确定训练过程中使用的图像区域的大小(宽 × 高)。
- 未勾选: 默认情况下,模型会基于你的数据自动确定 ROI。
- 勾选时: 如需保持输入尺寸一致,可以手动设置宽度和高度(例如,所有图像裁剪为 256×256 像素)。
当数据集中图像尺寸不一致且你希望输入保持固定以提高稳定性、可重复性,或以匹配已知模型架构时,使用固定尺寸(例如 256×256)。
当数据已经具有统一分辨率,或你希望系统根据数据集特性自动优化以获得最佳 ROI 时,让其自动选择。
Number of Iterations (Epochs)
- 定义: 一个 epoch = 对整个训练数据集的一次完整遍历。
- 数值(100): 模型将进行 100 次完整遍历的训练。
通常增加此数值会在一定程度上提高准确性,但会花更多时间。
经验法则: 在训练过程中监控训练损失和验证损失。如果验证损失不再下降而训练损失仍在下降,则表明模型出现过拟合,应提前停止训练。
Architecture
- 定义: 选择神经网络的大小和复杂度。
- Small: 训练更快,通常即可满足大多数数据集的需求,适合快速试验或较小的数据集。
- Larger models 能捕捉更多细节,但在小数据集上可能过拟合,而较小的模型在数据有限时更高效且泛化能力通常更好。
从 Small 开始,往往已经足够,并有助于在扩大规模之前更快迭代。
External GPU
如需了解更多关于 External GPU,请联系技术支持。
Training Parameters (Classification)
培训参数(也称为超参数)是控制“机器学习模型如何从数据中学习”的设置。
Learning Rate
- 定义: 控制模型在训练过程中更新内部权重的速度。
- 数值(0.003): 学习率越高,模型学习越快,但过高可能导致不稳定或准确性下降。
- 滑块范围: 从 10^-4(非常慢)到 10^-1(非常快)。
通常,0.001–0.01 之间的数值是分割任务的一个良好起点。
Validation Percent
- 定义: 指定将数据集的哪一部分用于验证(训练期间的测试)。
- 目的: 验证数据有助于监控模型在未见示例上的表现,防止过拟合。
- 范围: 0–50%。
常见选择是 10–20%。
若设为 0%,所有数据都用于训练,这可能提升训练准确性,但会使检测过拟合变得更困难。
ROI(Region of Interest)大小
- 定义: 定义在训练过程中使用的图像区域的大小(宽 × 高)。
- 未选中: 默认情况下,模型会基于您的数据自动确定 ROI。
- 选中时: 如果需要保持输入尺寸的一致性(例如,所有图像裁剪为 256×256 像素),您可以手动设置宽度和高度。
使用固定尺寸(例如 256×256)当您的数据集包含不同尺寸的图像且您希望输入保持一致,以提高稳定性、可重复性,或与已知的模型架构匹配。
让它在您的数据已经具有统一分辨率时自动选择,或在您希望系统根据数据集特征为 ROI 自动优化时让其自动选择。
迭代次数(Epochs)
- 定义: 一个 epoch = 对整个训练数据集的一次完整遍历。
- 数值(100): 模型将进行 100 次完整遍历。
提高这个数值通常会在一定程度上提升准确性,但训练时间也会变长。
经验法则: 在训练过程中监控训练损失和验证损失。如果验证损失不再下降而训练损失仍在下降,则表明模型可能发生过拟合,应提早停止训练。
架构
- 定义: 选择神经网络的大小和复杂度。
- Small: 训练速度更快,通常足以应对大多数数据集。非常适合快速试验或较小数据集。
从 Small 开始,它通常足够,并有助于在扩展规模之前更快进行迭代。
| 架构与摄像机 | 描述 | 推荐用途 |
|---|---|---|
| ConvNeXt-Pico | Ultra-light 模型,优化以实现速度和低内存使用。 | 适用于快速实验或硬件资源受限的场景。 |
| ConvNeXt-Nano | 比 Pico 略大;在几乎不增加成本的前提下获得更高的准确性。 | 小到中等数据集的良好平衡。 |
| ConvNeXt-Tiny | 提供更高的准确性,同时仍然高效。 | 适合中等数据集和较长的训练时间。 |
| ConvNeXt-Small | 该列表中最具能力的变体。容量和准确性更高。 | 用于大型数据集或需要最大性能时。 |
External GPU
联系支持,了解关于 External GPU 的更多信息。





